module Diff where

class Diff state difference | state -> difference where
    diff :: state -> state -> diffenence
    patch :: state -> difference -> state

instance (Diff name nameDiff) => Diff (ApplicationGen name) (ApplicationDiffGen nameDiff) where
    diff = diffMetaData
    patch = patchMetaData

instance Diff SqlDataBase SqlDataBaseDiff where
    diff = diffSqlDataBase
    patch = patchSqlDataBase
